﻿using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Narwhunderful.Aphelia.Framework.Graphics
{

    public interface IDrawableComponent : IUpdatableComponent
    {

        event EventHandler<EventArgs> DrawOrderChanged;
        event EventHandler<EventArgs> IsVisibleChanged;

        int DrawOrder { get; set; }
        bool IsVisible { get; set; }
        bool IsDrawing { get; }
        bool BackgroundIsVisible { get; set; }
        bool MiddlegroundIsVisible { get; set; }
        bool ForegroundIsVisible { get; set; }

        bool CanDraw(GameTime gameTime);
        void Draw(GameTime gameTime);

    }

}
